#include <iostream>
using namespace std;

struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
		val(x), next(NULL) {
	}
};

ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
	if (pListHead == NULL || k < 1) return NULL;
	ListNode* p1 = pListHead;
	ListNode* p2 = pListHead;
	int cnt(1);
	while (p2->next != NULL)
	{
		if (cnt>k -1)
			p1 = p1->next;
		p2 = p2->next;
		++cnt;
	}
	return cnt<k ? NULL : p1;
}




//int main()
//{
//	ListNode* head = new ListNode(1);
//	ListNode* p1 = head;
//	for (int i = 2; i < 10; ++i)
//	{
//		ListNode* p = new ListNode(i);
//		p1->next = p;
//		p1 = p1->next;
//
//	}
//	ListNode* f = FindKthToTail(head, 1);
//
//	cout << f->val;
//
//	system("pause");
//	return 0;
//}